﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Ext.Net;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            // Check Remember Cookies
            if (Request.Cookies["ManagerCookie"] != null)
            {
                // Lay Cookies Account dang nhap
                txtUsername.Text = Server.HtmlEncode(Request.Cookies["RememberCookie"].Values["Username"]);
                txtPassword.Attributes.Add("Value", Server.HtmlEncode(Request.Cookies["RememberCookie"].Values["Password"]));
                chkRemember.Checked = Server.HtmlEncode(Request.Cookies["RememberCookie"].Values["Checkbox"]) == "True";
            }
            else
            {
                txtUsername.Text = "";
                txtPassword.Attributes.Add("Value", "");
                chkRemember.Checked = false;
            }

            if (HttpContext.Current.Session["ManagerLogined"] != null)
                Response.Redirect("Users.aspx");
        }
    }

    [DirectMethod]
    public void CheckLogined()
    {
        if (txtUsername.Text.Trim().Length == 0)
        {
            X.Msg.Notify("Thông báo", "Tài khoản không được để trống").Show();
            txtUsername.Focus(true, 100);
        }
        try
        {
            string username = txtUsername.Text.Trim();
            string password = txtPassword.Text;
            string passwordMd5 = UltisCode.ChangeMD5(password);
            User user = new User()
            {
                Username = username,
                Keyword = passwordMd5
            };
            UserBLL userBLL = new UserBLL();
            try
            {
                if (userBLL.CheckLogin(user))
                {
                    // Lưu cookie
                    HttpCookie cookieRememberMe = new HttpCookie("RememberCookie");

                    // Lưu session
                    HttpContext.Current.Session["ManagerLogined"] = user;

                    if (chkRemember.Checked)
                    {
                        // Delete Cookie old if exists
                        if (Request.Cookies["ManagerCookie"] != null)
                        {
                            cookieRememberMe.Values.Add("Username", null);
                            cookieRememberMe.Values.Add("Password", null);
                            cookieRememberMe.Values.Add("Checkbox", null);
                            cookieRememberMe.Expires = DateTime.Now.AddDays(30);
                            Response.Cookies.Add(cookieRememberMe);
                        }
                        // Save cookies
                        cookieRememberMe.Values.Add("Username", username);
                        cookieRememberMe.Values.Add("Password", password);
                        cookieRememberMe.Values.Add("Checkbox", "True");
                        cookieRememberMe.Expires = DateTime.Now.AddDays(30);
                        Response.Cookies.Add(cookieRememberMe);
                    }
                    else
                    {
                        // Delete Cookie old if exists
                        if (Request.Cookies["RememberCookie"] != null)
                        {
                            cookieRememberMe.Values.Add("Username", null);
                            cookieRememberMe.Values.Add("Password", null);
                            cookieRememberMe.Values.Add("Checkbox", null);
                            cookieRememberMe.Expires = DateTime.Now.AddDays(30);
                            Response.Cookies.Add(cookieRememberMe);
                        }
                    }

                    Response.Redirect("Users.aspx");
                }
                else
                {
                    X.Msg.Notify("Thông báo", "Tài khoản hoặc mật khẩu không đúng").Show();
                }
            }
            catch (Exception)
            {
                X.Msg.Notify("Thông báo", "Tài khoản hoặc mật khẩu không đúng").Show();
            }
        }
        catch (Exception)
        {
            X.Msg.Notify("Thông báo", "Hệ thống đang bận, hãy quay lại sau").Show();
        }
    }
}